package com.rasenhund.android.grecorder.activity;

import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import com.rasenhund.android.grecorder.R;
import com.rasenhund.android.grecorder.common.Const;

/***
 * メニュー画面
 */
public class MenuActivity extends BaseActivity {
    @SuppressWarnings("unused")
    private static final String TAG = SelectCategoryActivity.class.getSimpleName();
    private final MenuActivity self = this;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.menu);
        
        // 広告エリアの初期化
        initAdView();

        // ヘッダ
        mTxtArmyEfsf = (TextView) findViewById(R.id.txtArmy_Efsf);
        mTxtArmyPoz = (TextView) findViewById(R.id.txtArmy_Poz);
        
        // 新規登録ボタン
        Button btnNew = (Button) findViewById(R.id.btnNew);
        btnNew.setOnClickListener(btnNew_OnClickListener);

        // 勝率ボタン
        Button btnResult = (Button) findViewById(R.id.btnResult);
        btnResult.setOnClickListener(btnResult_OnClickListener);

        // 出撃傾向ボタン
        Button btnTrend = (Button) findViewById(R.id.btnTrend);
        btnTrend.setOnClickListener(btnTrend_OnClickListener);

        // 戦闘履歴ボタン
        Button btnHistory = (Button) findViewById(R.id.btnHistory);
        btnHistory.setOnClickListener(btnHistory_OnClickListener);
        
        // スケジュールボタン
        Button btnSchedule = (Button) findViewById(R.id.btnSchedule);
        btnSchedule.setOnClickListener(btnSchedule_OnClickListener);

        // 設定ボタン
        Button btnPreference = (Button) findViewById(R.id.btnPreference);
        btnPreference.setOnClickListener(btnPreference_OnClickListener);

        // Preferenceから軍属コード取得
        mArmyCd = getIntPreference(getStr(R.string.pref_key_current_army), Const.ARMY.EFSF);

     }
    
    @Override
    protected void onResume() {
        super.onResume();

        // 軍属に応じてヘッダを変更
        setArmyHeaderVisibility(mArmyCd);

    }

    /**
     * オプションアイテムメニューが最初に表示されるときの処理
     */
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {

        // メニューに表示するレイアウトファイルを指定
        getMenuInflater().inflate(R.menu.menu, menu);

        return super.onCreateOptionsMenu(menu);
    }

    /**
     * オプションアイテムメニューが選択されたときの処理
     */
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {

        // 連邦軍・ジオン軍を切り替え
        changeCurrentArmy();

        return super.onOptionsItemSelected(item);
    }

    /********************
     * EventListener
     ********************/
    /**
     * 新規ボタン押下時のイベントリスナ
     */
    private OnClickListener btnNew_OnClickListener = new OnClickListener() {
        
        @Override
        public void onClick(View v) {
            
            Intent intent = new Intent(self, SelectStageActivity.class);
            startActivity(intent);
            
        }
        
    };

    /**
     * 勝率ボタン押下時のイベントリスナ
     */
    private OnClickListener btnResult_OnClickListener = new OnClickListener() {

        @Override
        public void onClick(View v) {

            Intent intent = new Intent(self, ResultStageListActivity.class);
            startActivity(intent);

        }
    };

    /**
     * 出撃傾向ボタン押下時のイベントリスナ
     */
    private OnClickListener btnTrend_OnClickListener = new OnClickListener() {

        @Override
        public void onClick(View v) {

            Intent intent = new Intent(self, TrendActivity.class);
            startActivity(intent);

        }
    };

    /**
     * 戦闘履歴ボタン押下時のイベントリスナ
     */
    private OnClickListener btnHistory_OnClickListener = new OnClickListener() {

        @Override
        public void onClick(View v) {

            Intent intent = new Intent(self, HistoryListActivity.class);
            startActivity(intent);

        }
    };
    
    /**
     * スケジュールボタン押下時のイベントリスナ
     */
    private OnClickListener btnSchedule_OnClickListener = new OnClickListener() {

        @Override
        public void onClick(View v) {

            Intent intent = new Intent(self, ScheduleActivity.class);
            startActivity(intent);

        }
    };

    /**
     * 設定ボタン押下時のイベントリスナ
     */
    private OnClickListener btnPreference_OnClickListener = new OnClickListener() {

        @Override
        public void onClick(View v) {

            Intent intent = new Intent(self, AppPreferenceActivity.class);
            startActivity(intent);

        }
    };

    /********************
     * Method
     ********************/

    /**
     * 軍属の変更処理
     */
    private void changeCurrentArmy() {

        String sMsg = "";

        if (mArmyCd == Const.ARMY.EFSF) {

            mArmyCd = Const.ARMY.POZ;
            sMsg = "ジオン公国軍に変更しました";

        } else if (mArmyCd == Const.ARMY.POZ) {

            mArmyCd = Const.ARMY.EFSF;
            sMsg = "地球連邦軍に変更しました";

        }

        // 軍属に応じてヘッダを変更
        setArmyHeaderVisibility(mArmyCd);

        // Preferenceに設定書込み
        setIntPreference(getStr(R.string.pref_key_current_army), mArmyCd);

        // Toast表示
        Toast.makeText(self, sMsg, Toast.LENGTH_SHORT).show();

    }

}